package cmo.neutech.day05;

import java.util.Scanner;

public class Dome1 {

    public static void main(String[] args) {
        Scanner update = new Scanner(System.in);
//        1.在歌唱比赛中,共有10位评委进行打分,
//        在计算歌手得分时,去掉一个最高分,去掉一个最低分,
//        然后剩余的8位评委的分数进行平均,就是该选手的最终得分。
//        输入每个评委的评分,求某选手的得分
//        int[] arr = new int[10];
//        double sum = 0;
//        for(int i=0;i<arr.length;i++){
//            arr[i] = update.nextInt();
//        }
//        for(int i=1;i<arr.length;i++)
//        {
//            for(int j=0;j<arr.length-i;j++)
//            {
//                if(arr[j]>arr[j+1])
//                {
//                    int tmp = arr[j];
//                    arr[j]=arr[j+1];
//                    arr[j+1]=tmp;
//                }
//            }
//        }
//        for(int i=1;i<arr.length-1;i++){
//            sum += arr[i];
//        }
//        System.out.println(sum/8);

//        2.有一地下组织的接头密文为：
//        {"锤完","另一只","谁也","大雁","他在","一只","天上","追呀追","飞呀飞","锤呀锤","后面","追上","以后","一顿","不认识谁"}.
//        有一本解密书籍,其中提示密文会按照以下顺序排列
//        {5,3,4,6,8,1,3,4,6,7,11,12,13,9,0,12,2,14}.要求解出接头暗语 并最后输出。
//        String[] a = {"锤完","另一只","谁也","大雁","他在","一只","天上","追呀追","飞呀飞","锤呀锤","后面","追上","以后","一顿","不认识谁"};
//        int[] b = {5,3,4,6,8,1,3,4,6,7,11,12,13,9,0,12,2,14};
//        String x;
//        for(int i=0;i<b.length;i++){
//            System.out.print(a[b[i]]);
//        }
//

//        1.编写一个简单程序,要求数组长度为5,分别赋值10,20,30,40,50,在控制台输出该数组的值。
//        int a[] = {10,20,30,40,50};
//        for(int i=0;i<5;i++){
//            System.out.println(a[i]);
//        }

//        2.将一个字符数组的值（neusofteducation）拷贝到另一个字符数组中。
//        char[] arr = {'n', 'e', 'u', 's', 'o', 'f', 't', 'e', 'd', 'u', 'c', 'a', 't', 'i', 'o', 'n'};
//        char[] arr2 = new char[arr.length];
//        for(int i=0;i<arr.length;i++){
//            arr2[i] = arr[i];
//            System.out.print(arr2[i]);
//        }

//        3.给定一个有9个整数（1,6,2,3,9,4,5,7,8）的数组,先排序,然后输出排序后的数组的值。
//        int[] arr = {1,6,2,3,9,4,5,7,8};
//        for(int i=0;i<arr.length;i++){
//            for(int j=0;j<arr.length;j++){
//                if(arr[j]>arr[i]){
//                    int x = arr[i];
//                    arr[i] = arr[j];
//                    arr[j] = x;
//                }
//            }
//        }
//        for(int i=0;i<arr.length;i++){
//            System.out.print(arr[i]+" ");
//        }

//        4.在一个有8个整数（18,25,7,36,13,2,89,63）的数组中找出其中最大的数及其下标
//        int[] arr = {18,25,7,36,13,2,89,63};
//        int p = 0;
//        for(int i=0;i<arr.length;i++){
//            for(int j=0;j<arr.length;j++){
//                if(arr[j]>arr[i]){
//                    int x = arr[i];
//                    arr[i] = arr[j];
//                    arr[j] = x;
//                    p = j;
//                }
//            }
//        }
//        System.out.println(arr[arr.length-1]+"  "+p);

//        5.将一个数组中的元素逆序存放到另一各数组中。
//        int[] arr = {18,25,7,36,13,2,89,63};
//        int[] arr2 = new int[arr.length];
//        int s = arr.length-1;
//        for(int i=arr.length-1;i>=0;i--){
//            arr2[s] = arr[i];
//            System.out.print(arr2[s]+" ");
//            s--;
//        }

//        6.将一个数组中的重复元素保留一个其他的清零。
//        int[] arr = {18,25,7,36,13,2,89,63,18,2};
//        int[] arr2 = new int[arr.length];
//        for(int i=0;i<arr.length;i++){
//            for(int j=i+1;j<arr.length;j++){
//                if(arr[j] == arr[i]){
//                    arr2[i] = arr[i];
//                }
//            }
//            if(arr[i] != arr2[i]){
//                arr[i] = 0;
//            }
//            System.out.print(arr[i]+",");
//        }

//        7.给定一维数组{ -10,2,3,246,-100,0,5} ,计算出数组中的平均值、最大值、最小值。
//        int[] ch = {-10,2,3,246,-100,0,5};
//        int s = ch.length;
//        int sum = 0;
//        for (int i = 0; i < s - 1; i++) {
//            for (int j = 0; j < s - i - 1; j++) {
//                if (ch[j] > ch[j + 1]) {
//                    int temp = ch[j];
//                    ch[j] = ch[j + 1];
//                    ch[j + 1] = temp;
//                }
//            }
//        }
//        for(int i=0;i<s;i++){
//            sum += ch[i];
//        }
//        double avg = (double)sum/s;
//        int max = ch[s-1];
//        int min = ch[0];
//        System.out.print("平均值："+avg+"最大值："+max+"最小值："+min);

//        8.【难】假设队列中共有500人,
//        每次从1开始数,数到3的人出队,下一个人接着从1开始数,
//        到结尾后接着从头继续循环数,编写程序找到最后剩下的人是哪一个。
//        boolean[] a = new boolean[500];
//        for (int i = 0; i < a.length; i++) {
//            a[i] = true;
//        }
//
//        int leftNum = a.length;
//        int countNum = 0;
//        int index = 0;
//        while (leftNum > 1) {
//            if (a[index]) {
//                        countNum++;
//                        if (countNum == 3) {
//                            countNum = 0;
//                            a[index] = false;
//                            leftNum--;
//                        }
//                    }
//                    index++;
//                    if (index == a.length) {
//                        index = 0;
//                    }
//        }
//        for (int i = 0; i < a.length; i++) {
//            if (a[i])
//                System.out.println("最后剩下的人是第" + (i + 1) + "的人");
//        }
    }
}
